#ifndef _HASHMAP 
#define _HASHMAP


#include <iostream>
#include <iomanip>      
#include <ext/hash_map>

#include "othello_cut.h"
#include "Nodo.h"

using namespace std;


struct limits {
/*public:
    
    limits( const limits &org){  
        limits->lowerbound = org->lowerbound;
        limits->upperbound = org->upperbound;       
    };
 */ 
    int lowerbound;
    int upperbound;
};




namespace __gnu_cxx {

    template<> class hash<state_t> {
    public:

        size_t operator()(const state_t& state) const {
            return state.free() ^ state.pos();
        }
        
    };
    
};

using namespace __gnu_cxx;

struct comp_str {
    bool operator()(const state_t & x, const state_t & y) const {
      return x == y;
   }
};

class hash_t : public __gnu_cxx::hash_map<state_t, limits> {
};

#endif

